﻿Module Module1

    Sub Main()
        Dim dato1 As Integer = 0
        Dim dato2 As Integer = 0
        Dim opcion As Integer = 0

        'mostramos el menú.
        Console.WriteLine("1- Área triángulo.")
        Console.WriteLine("2- Área cuadrado.")
        Console.WriteLine("3- Área Rombo.")
        Console.WriteLine("4- Salir.")
        Console.WriteLine("") ' salto de linea.
        opcion = Console.ReadLine()

        Select Case opcion
            'triangulo
            Case 1
                Console.Write("El área del triángulo es: " & CalcularArea(opcion))
                Console.WriteLine("")  'salto de linea
                Console.WriteLine("")  'salto de linea
                Main()

                'cuadrado
            Case 2

                Console.Write("El área del cuadrado es: " & CalcularArea(opcion))
                Console.WriteLine("")  'salto de linea
                Console.WriteLine("")  'salto de linea
                Main()

                'rombo
            Case 3
                Console.Write("El área del rombo es: " & CalcularArea(opcion))
                Console.WriteLine("")  'salto de linea
                Console.WriteLine("")  'salto de linea
                Main()

                'Salir
            Case 4
                Console.WriteLine("¿Seguro que desea salir? s/n")
                Dim salida As String = ""
                salida = Console.ReadLine()
                If salida = "s" Or salida = "S" Then
                    Console.WriteLine("Saliendo del programa...")

                    Exit Sub
                ElseIf salida = "n" Or salida = "N" Then
                    Console.WriteLine("Se reiniciará el programa de nuevo para seguir usándolo.")
                    Console.WriteLine("")
                    Main()
                Else
                    Console.WriteLine("Debe indicar S o bien N, no otras teclas, el programa se reiniciará para que pueda usarlo.")
                    Main()
                End If
            Case Else
                Console.WriteLine("Debe introducir un valor de 1 a 4 inclusives. Se reiniciará el programa de nuevo para seguir usándolo.")
                Main()
        End Select
    End Sub

    Private Function CalcularArea(ByVal opcion As Integer) As Integer
        Dim resultado As Integer = 0
        Select Case opcion
            'area triangulo
            Case 1
                Console.Write("Indique la longitud de la base del triángulo: ")
                Dim base As Integer = Console.ReadLine()

                Console.Write("Indique la altura del triángulo: ")
                Dim altura As Integer = Console.ReadLine()
                'resultado = ((base * altura) / 2)
                CalcularArea = ((base * altura) / 2)
                Return CalcularArea
                'area cuadrado
            Case 2
                Console.Write("Indique la longitud del lado del cuadrado: ")
                Dim lado As Integer = Console.ReadLine()
                resultado = (lado * lado)

                'area rombo
            Case 3
                Console.Write("Indique la longitud de la diagonal MAYOR del rombo: ")
                Dim mayor As Integer = Console.ReadLine()

                Console.Write("Indique la longitud de la diagonal MENOR del rombo: ")
                Dim menor As Integer = Console.ReadLine()
                resultado = ((mayor * menor) / 2)

        End Select
        Return resultado
    End Function


End Module
